package com.le.tester.imooc.masterJUC.threadpool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ThreadFactory;

/**
 * 描述：不使用线程池开启多个线程
 * 实际中，如果需要开启5个以上的线程，那么就适合使用线程池
 */
public class ForLoop {
    public static void main(String[] args) {
        //给定任务的构造器
        //开启到了1000个，那么线程就要不停的创建销毁，这样给系统带来的开销并不好，对于系统的压力相对的会比较大
        //过多的线程占用的内存比较大
        // 并不是一个任务就必须的要对应一个线程的，可以使用线程池。来更好的利用线程的资源，来更好的处理任务
        //有线程池之后，就不用反复的创建和销毁（速度也会变快），线程的数量是固定的，也不怕线程数量太多而过多的占用了资源
        //统一管理
        for (int i = 0; i < 1000; i++) {
            //ExecutorService e = Executors.defaultThreadFactory();
            Thread thread = new Thread(new Task());
            thread.start();
        }

    }

    static class Task implements Runnable {

        @Override
        public void run() {
            System.out.println("执行了任务");
        }
    }
}
